#!/usr/bin/env python
# -*- coding: utf-8 -*-

"""
Finder Tools 图形用户界面 (GUI) 主应用
"""

import os
import sys
import tkinter as tk
from tkinter import ttk, filedialog, messagebox
from pathlib import Path

from gui.organizer_tab import OrganizerTab
from gui.cleaner_tab import CleanerTab
from gui.batch_tab import BatchTab 
from gui.sync_tab import SyncTab
from gui.converter_tab import ConverterTab

class FinderToolsApp(tk.Tk):
    """Finder Tools 图形用户界面主应用类"""
    
    def __init__(self):
        super().__init__()
        
        self.title("Finder Tools - 文件夹自动化管理工具")
        self.geometry("800x600")
        self.minsize(700, 500)
        
        # 设置应用图标
        # self.iconbitmap("path/to/icon.ico")  # 可选
        
        # 创建主框架
        self.main_frame = ttk.Frame(self)
        self.main_frame.pack(fill=tk.BOTH, expand=True, padx=10, pady=10)
        
        # 创建选项卡控件
        self.tab_control = ttk.Notebook(self.main_frame)
        
        # 创建各功能选项卡
        self.organizer_tab = OrganizerTab(self.tab_control)
        self.cleaner_tab = CleanerTab(self.tab_control)
        self.batch_tab = BatchTab(self.tab_control)
        self.sync_tab = SyncTab(self.tab_control)
        self.converter_tab = ConverterTab(self.tab_control)
        
        # 添加选项卡
        self.tab_control.add(self.organizer_tab, text="文件整理")
        self.tab_control.add(self.cleaner_tab, text="文件清理")
        self.tab_control.add(self.batch_tab, text="批量操作")
        self.tab_control.add(self.sync_tab, text="文件同步")
        self.tab_control.add(self.converter_tab, text="格式转换")
        
        self.tab_control.pack(fill=tk.BOTH, expand=True)
        
        # 创建状态栏
        self.status_var = tk.StringVar()
        self.status_var.set("就绪")
        self.status_bar = ttk.Label(self, textvariable=self.status_var, relief=tk.SUNKEN, anchor=tk.W)
        self.status_bar.pack(side=tk.BOTTOM, fill=tk.X)
        
        # 创建菜单栏
        self.create_menu()
        
        # 设置样式
        self.style = ttk.Style()
        self.style.configure("TFrame", background="#f5f5f5")
        self.style.configure("TButton", padding=6, relief="flat", background="#3498db")
        self.style.configure("TLabel", background="#f5f5f5")
        self.style.configure("TNotebook", background="#f5f5f5")
    
    def create_menu(self):
        """创建菜单栏"""
        menu_bar = tk.Menu(self)
        
        # 文件菜单
        file_menu = tk.Menu(menu_bar, tearoff=0)
        file_menu.add_command(label="退出", command=self.quit)
        menu_bar.add_cascade(label="文件", menu=file_menu)
        
        # 帮助菜单
        help_menu = tk.Menu(menu_bar, tearoff=0)
        help_menu.add_command(label="关于", command=self.show_about)
        help_menu.add_command(label="使用帮助", command=self.show_help)
        menu_bar.add_cascade(label="帮助", menu=help_menu)
        
        self.config(menu=menu_bar)
    
    def show_about(self):
        """显示关于对话框"""
        messagebox.showinfo(
            "关于 Finder Tools",
            "Finder Tools - 文件夹自动化管理工具\n"
            "版本: 0.1.0\n\n"
            "一个用于文件夹自动化管理的Python工具集。\n"
            "© 2023 Finder Tools Team"
        )
    
    def show_help(self):
        """显示帮助信息"""
        messagebox.showinfo(
            "使用帮助",
            "Finder Tools 包含以下功能：\n\n"
            "1. 文件整理 - 按类型、日期、大小等整理文件\n"
            "2. 文件清理 - 查找和删除重复文件、空文件夹等\n"
            "3. 批量操作 - 批量重命名、压缩、添加水印等\n"
            "4. 文件同步 - 目录同步和备份\n"
            "5. 格式转换 - 批量转换文件格式\n\n"
            "选择相应的选项卡，设置参数后点击执行即可。"
        )
    
    def update_status(self, message):
        """更新状态栏消息"""
        self.status_var.set(message)
        self.update_idletasks()


def main():
    """启动GUI应用"""
    app = FinderToolsApp()
    app.mainloop()


if __name__ == "__main__":
    main() 